{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Twisted WS2 Bilayers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## import & prepare" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Collecting git+https://github.com/nmdl-mizo/interface_master.git@develop\n", " Cloning https://github.com/nmdl-mizo/interface_master.git (to revision develop) to /tmp/pip-req-build-imt8qeri\n", " Running command git clone --filter=blob:none --quiet https://github.com/nmdl-mizo/interface_master.git /tmp/pip-req-build-imt8qeri\n", " Resolved https://github.com/nmdl-mizo/interface_master.git to commit f5666609400c80ae72c32471aeeaf5b80e4684e1\n", " Preparing metadata (setup.py) ... \u001b[?25ldone\n", "\u001b[?25hRequirement already satisfied: pymatgen in /home/vscode/.local/lib/python3.10/site-packages (from interfacemaster==1.1.1) (2023.1.30)\n", "Requirement already satisfied: matplotlib in /home/vscode/.local/lib/python3.10/site-packages (from interfacemaster==1.1.1) (3.7.0)\n", "Requirement already satisfied: gb_code in /home/vscode/.local/lib/python3.10/site-packages (from interfacemaster==1.1.1) (1.0.0)\n", "Requirement already satisfied: numpy>=1.14.0 in /home/vscode/.local/lib/python3.10/site-packages (from gb_code->interfacemaster==1.1.1) (1.24.2)\n", "Requirement already satisfied: contourpy>=1.0.1 in /home/vscode/.local/lib/python3.10/site-packages (from matplotlib->interfacemaster==1.1.1) (1.0.7)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/site-packages (from matplotlib->interfacemaster==1.1.1) (23.0)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /home/vscode/.local/lib/python3.10/site-packages (from matplotlib->interfacemaster==1.1.1) (1.4.4)\n", "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/site-packages (from matplotlib->interfacemaster==1.1.1) (2.8.2)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /home/vscode/.local/lib/python3.10/site-packages (from matplotlib->interfacemaster==1.1.1) (3.0.9)\n", "Requirement already satisfied: pillow>=6.2.0 in /home/vscode/.local/lib/python3.10/site-packages (from matplotlib->interfacemaster==1.1.1) (9.4.0)\n", "Requirement already satisfied: cycler>=0.10 in /home/vscode/.local/lib/python3.10/site-packages (from matplotlib->interfacemaster==1.1.1) (0.11.0)\n", "Requirement already satisfied: fonttools>=4.22.0 in /home/vscode/.local/lib/python3.10/site-packages (from matplotlib->interfacemaster==1.1.1) (4.38.0)\n", "Requirement already satisfied: ruamel.yaml>=0.17.0 in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (0.17.21)\n", "Requirement already satisfied: tabulate in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (0.9.0)\n", "Requirement already satisfied: monty>=3.0.2 in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (2022.9.9)\n", "Requirement already satisfied: sympy in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (1.11.1)\n", "Requirement already satisfied: uncertainties>=3.1.4 in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (3.1.7)\n", "Requirement already satisfied: pandas in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (1.5.3)\n", "Requirement already satisfied: mp-api>=0.27.3 in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (0.30.10)\n", "Requirement already satisfied: palettable>=3.1.1 in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (3.3.0)\n", "Requirement already satisfied: plotly>=4.5.0 in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (5.13.0)\n", "Requirement already satisfied: pybtex in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (0.24.0)\n", "Requirement already satisfied: networkx>=2.2 in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (3.0)\n", "Requirement already satisfied: tqdm in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (4.64.1)\n", "Requirement already satisfied: scipy>=1.5.0 in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (1.10.1)\n", "Requirement already satisfied: spglib>=2.0.2 in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (2.0.2)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (2.28.2)\n", "Requirement already satisfied: typing-extensions>=3.7.4.1 in /home/vscode/.local/lib/python3.10/site-packages (from mp-api>=0.27.3->pymatgen->interfacemaster==1.1.1) (4.5.0)\n", "Requirement already satisfied: setuptools in /usr/local/lib/python3.10/site-packages (from mp-api>=0.27.3->pymatgen->interfacemaster==1.1.1) (65.5.1)\n", "Requirement already satisfied: msgpack in /home/vscode/.local/lib/python3.10/site-packages (from mp-api>=0.27.3->pymatgen->interfacemaster==1.1.1) (1.0.4)\n", "Requirement already satisfied: emmet-core>=0.39.8 in /home/vscode/.local/lib/python3.10/site-packages (from mp-api>=0.27.3->pymatgen->interfacemaster==1.1.1) (0.44.0)\n", "Requirement already satisfied: tenacity>=6.2.0 in /home/vscode/.local/lib/python3.10/site-packages (from plotly>=4.5.0->pymatgen->interfacemaster==1.1.1) (8.2.1)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib->interfacemaster==1.1.1) (1.16.0)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/site-packages (from requests->pymatgen->interfacemaster==1.1.1) (2022.12.7)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/site-packages (from requests->pymatgen->interfacemaster==1.1.1) (3.0.1)\n", "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/site-packages (from requests->pymatgen->interfacemaster==1.1.1) (1.26.14)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/site-packages (from requests->pymatgen->interfacemaster==1.1.1) (3.4)\n", "Requirement already satisfied: ruamel.yaml.clib>=0.2.6 in /home/vscode/.local/lib/python3.10/site-packages (from ruamel.yaml>=0.17.0->pymatgen->interfacemaster==1.1.1) (0.2.7)\n", "Requirement already satisfied: future in /home/vscode/.local/lib/python3.10/site-packages (from uncertainties>=3.1.4->pymatgen->interfacemaster==1.1.1) (0.18.3)\n", "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/site-packages (from pandas->pymatgen->interfacemaster==1.1.1) (2022.7.1)\n", "Requirement already satisfied: latexcodec>=1.0.4 in /home/vscode/.local/lib/python3.10/site-packages (from pybtex->pymatgen->interfacemaster==1.1.1) (2.0.1)\n", "Requirement already satisfied: PyYAML>=3.01 in /usr/local/lib/python3.10/site-packages (from pybtex->pymatgen->interfacemaster==1.1.1) (6.0)\n", "Requirement already satisfied: mpmath>=0.19 in /home/vscode/.local/lib/python3.10/site-packages (from sympy->pymatgen->interfacemaster==1.1.1) (1.2.1)\n", "Requirement already satisfied: pydantic>=1.10.2 in /home/vscode/.local/lib/python3.10/site-packages (from emmet-core>=0.39.8->mp-api>=0.27.3->pymatgen->interfacemaster==1.1.1) (1.10.5)\n", "\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip available: \u001b[0m\u001b[31;49m22.3.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m23.0.1\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", " % Total % Received % Xferd Average Speed Time Time Time Current\n", " Dload Upload Total Spent Left Speed\n", "100 951 100 951 0 0 2962 0 --:--:-- --:--:-- --:--:-- 2962\n", " % Total % Received % Xferd Average Speed Time Time Time Current\n", " Dload Upload Total Spent Left Speed\n", "100 799 100 799 0 0 1026 0 --:--:-- --:--:-- --:--:-- 1025\n" ] } ], "source": [ "!pip install git+https://github.com/nmdl-mizo/interface_master.git@develop\n", "!mkdir -p cif_files\n", "!curl https://raw.githubusercontent.com/nmdl-mizo/interface_master/develop/test_files/cif_files/WS2_mp-224_conventional_standard.cif -o 'cif_files/WS2_mp-224_conventional_standard.cif'\n", "!curl https://raw.githubusercontent.com/nmdl-mizo/interface_master/develop/test_files/cif_files/WS2_single_layer.cif -o 'cif_files/WS2_single_layer.cif'" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from interfacemaster.cellcalc import get_primitive_hkl, get_pri_vec_inplane, get_normal_index, get_normal_from_MI, rot\n", "from interfacemaster.interface_generator import core, convert_vector_index\n", "from interfacemaster.symmetric_tilt import get_csl_twisted_graphenes\n", "from numpy import array, dot, round, cross, eye, pi, ceil, column_stack, arange\n", "from numpy.linalg import inv, det, norm\n", "from gb_code.csl_generator import print_list\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from pymatgen.core.structure import Structure" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Define a get_csl_twisted_graphenes class" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": true }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/vscode/.local/lib/python3.10/site-packages/pymatgen/io/cif.py:1169: UserWarning: Issues encountered while parsing CIF: Some fractional coordinates rounded to ideal values to avoid issues with finite precision.\n", " warnings.warn(\"Issues encountered while parsing CIF: \" + \"\\n\".join(self.warnings))\n" ] } ], "source": [ "#sigmas, rotation angles, CNID areas, num of atoms\n", "sigmas, thetas, A_cnid, anum = get_csl_twisted_graphenes(lim = 10, filename = \\\n", " 'cif_files/WS2_mp-224_conventional_standard.cif',\\\n", " maxsigma = 2500, verbose=False)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", " | sigma | \n", "thetas | \n", "CNID area | \n", "atom number | \n", "
---|---|---|---|---|
1 | \n", "7 | \n", "21.786789 | \n", "1.259542 | \n", "28 | \n", "
2 | \n", "13 | \n", "32.204228 | \n", "0.678215 | \n", "52 | \n", "
3 | \n", "19 | \n", "13.173551 | \n", "0.464042 | \n", "76 | \n", "
4 | \n", "31 | \n", "17.896551 | \n", "0.284413 | \n", "124 | \n", "
5 | \n", "37 | \n", "9.430008 | \n", "0.238292 | \n", "148 | \n", "
6 | \n", "43 | \n", "15.178179 | \n", "0.205042 | \n", "172 | \n", "
7 | \n", "49 | \n", "16.426421 | \n", "0.179935 | \n", "196 | \n", "
8 | \n", "61 | \n", "7.340993 | \n", "0.144538 | \n", "244 | \n", "
9 | \n", "67 | \n", "35.567302 | \n", "0.131594 | \n", "268 | \n", "
10 | \n", "73 | \n", "11.635051 | \n", "0.120778 | \n", "292 | \n", "
11 | \n", "79 | \n", "26.007824 | \n", "0.111605 | \n", "316 | \n", "
12 | \n", "91 | \n", "6.008983 | \n", "0.096888 | \n", "364 | \n", "
13 | \n", "97 | \n", "29.409311 | \n", "0.090895 | \n", "388 | \n", "
14 | \n", "103 | \n", "19.652860 | \n", "0.085600 | \n", "412 | \n", "
15 | \n", "109 | \n", "10.992733 | \n", "0.080888 | \n", "436 | \n", "
16 | \n", "127 | \n", "5.085848 | \n", "0.069424 | \n", "508 | \n", "
17 | \n", "133 | \n", "8.613238 | \n", "0.066292 | \n", "532 | \n", "
18 | \n", "139 | \n", "34.538944 | \n", "0.063430 | \n", "556 | \n", "
19 | \n", "151 | \n", "18.733998 | \n", "0.058389 | \n", "604 | \n", "
20 | \n", "163 | \n", "36.516938 | \n", "0.054091 | \n", "652 | \n", "
21 | \n", "169 | \n", "4.408455 | \n", "0.052170 | \n", "676 | \n", "
22 | \n", "181 | \n", "30.158276 | \n", "0.048712 | \n", "724 | \n", "
23 | \n", "193 | \n", "8.255621 | \n", "0.045683 | \n", "772 | \n", "
24 | \n", "217 | \n", "3.890238 | \n", "0.040630 | \n", "868 | \n", "
25 | \n", "223 | \n", "19.274807 | \n", "0.039537 | \n", "892 | \n", "
26 | \n", "229 | \n", "26.745652 | \n", "0.038501 | \n", "916 | \n", "
27 | \n", "247 | \n", "14.622221 | \n", "0.035696 | \n", "988 | \n", "
28 | \n", "259 | \n", "28.783203 | \n", "0.034042 | \n", "1036 | \n", "
29 | \n", "271 | \n", "3.481006 | \n", "0.032534 | \n", "1084 | \n", "
30 | \n", "277 | \n", "17.278244 | \n", "0.031830 | \n", "1108 | \n", "
31 | \n", "283 | \n", "24.016602 | \n", "0.031155 | \n", "1132 | \n", "
32 | \n", "301 | \n", "6.608610 | \n", "0.029292 | \n", "1204 | \n", "
33 | \n", "331 | \n", "3.149657 | \n", "0.026637 | \n", "1324 | \n", "
34 | \n", "337 | \n", "15.654144 | \n", "0.026163 | \n", "1348 | \n", "
35 | \n", "367 | \n", "11.985100 | \n", "0.024024 | \n", "1468 | \n", "
36 | \n", "379 | \n", "23.713582 | \n", "0.023263 | \n", "1516 | \n", "
37 | \n", "403 | \n", "14.307676 | \n", "0.021878 | \n", "1612 | \n", "
38 | \n", "409 | \n", "19.932013 | \n", "0.021557 | \n", "1636 | \n", "
39 | \n", "457 | \n", "27.052418 | \n", "0.019293 | \n", "1828 | \n", "
40 | \n", "481 | \n", "18.365765 | \n", "0.018330 | \n", "1924 | \n", "
41 | \n", "523 | \n", "20.146584 | \n", "0.016858 | \n", "2092 | \n", "
42 | \n", "559 | \n", "17.026049 | \n", "0.015772 | \n", "2236 | \n", "
43 | \n", "613 | \n", "23.301803 | \n", "0.014383 | \n", "2452 | \n", "